﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class ENFinal
    {

        private int id;

     
        private string nombre;
        private string lugar;
        private string descripcion;

        private CADFinal cadFinal = new CADFinal();

        public ENFinal()
        {
            id = 0;
            nombre = "";
            descripcion = "";
            lugar = "";
            //arrayLugares = new ArrayList();
        }

        public ENFinal(string nombre_f, string descripcion_f, string lugar_f )
        {
            id = 0;
            nombre = nombre_f;
            lugar = lugar_f;
            descripcion = descripcion_f;
            //arrayLugares = arrayLugares_f;
        }

        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        public string Lugar
        {
            get { return lugar; }
            set { lugar = value; }
        }

        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

      
        /*
        public ArrayList ArrayLugares
        {
            get { return arrayLugares; }
            set { arrayLugares = value; }
        }*/

        public DataSet ObtenerListadoFinales()
        {
            DataSet res = new DataSet();

            try
            {
                res = cadFinal.ObtenerTablaFinal();
            }
            catch(Exception exc)
            {
                throw (exc);
            }

            return res;
        }


        public bool EliminarFinal()
        {
            bool resultado = false;

            try
            {
                DataSet dsFinales = cadFinal.ObtenerTablaFinal();

                dsFinales.Tables["Finales"].Rows.Find(nombre).Delete();//Cambio id.tostring por nombre que es lo que se busca
                resultado = cadFinal.ActualizarTablaFinales(dsFinales);
            }
            catch (Exception exc)
            {
                throw (exc);
            }

            return resultado;
        }

        public bool InsertarFinal(bool actualizar = false)
        {
            bool resultado = false;

            try
            {
                DataSet dsFinal = cadFinal.ObtenerTablaFinal();

                DataRow dr;
                if (actualizar)
                {
                    dr = dsFinal.Tables["Finales"].Rows.Find(id.ToString());
                }
                else
                {
                    dr = dsFinal.Tables["Finales"].NewRow();
                }

                dr["Nombre"] = nombre.ToString();
                dr["Lugar"] = lugar.ToString();
                dr["Descripcion"] = descripcion.ToString();

                if (actualizar)
                {
                    dr.EndEdit();
                }
                else
                {
                    dsFinal.Tables["Finales"].Rows.Add(dr);
                }

                resultado = cadFinal.ActualizarTablaFinales(dsFinal);
            }
            catch (Exception exc)
            {
                throw (exc);
            }

            return resultado;
        }

        public bool ActualizarFinales(DataSet dsFinales)
        {
            bool resultado = false;

            try
            {
               // resultado = cadObjeto.ActualizarObjetos(dsObjetos);
                resultado = cadFinal.ActualizarTablaFinales(dsFinales);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return resultado;
        }

        public DataSet BuscarListaFinales(string filtro)
        {
            DataSet resultado = new DataSet();

            try
            {
                resultado = cadFinal.ObtenerFiltradoFinales(filtro);
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerListaFinalesPorLugar(String lugar)
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadFinal.ObtenerTablaFinalesPorLugar(lugar);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public DataSet ObtenerListaFinalesPorObjeto(String objeto)
        {
            DataSet resultado = new DataSet();
            try
            {
                resultado = cadFinal.ObtenerTablaFinalesPorObjeto(objeto);
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }
    }
}
